package com.ruoyi.warning.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 关键链路日志表
 * </p>
 *
 * @author chenhc
 * @since 2025-08-12
 */
@Getter
@Setter
@TableName("ports_critical_log")
public class PortsCriticalLog implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "log_id", type = IdType.AUTO)
    private Integer logId;

    private Integer portId;

    @ApiModelProperty("接口速度")
    @TableField("ifSpeed")
    @Excel(name = "接口速度")
    private String ifSpeed;

    @ApiModelProperty("接口连接器是否存在")
    @TableField("ifConnectorPresent")
    @Excel(name = "接口连接器是否存在")
    private String ifConnectorPresent;

    @ApiModelProperty("接口操作状态")
    @TableField("ifOperStatus")
    @Excel(name = "接口操作状态")
    private String ifOperStatus;

    @ApiModelProperty("接口管理状态")
    @TableField("ifAdminStatus")
    @Excel(name = "接口管理状态")
    private String ifAdminStatus;

    @ApiModelProperty("接口最大传输单元")
    @TableField("ifMtu")
    @Excel(name = "接口最大传输单元")
    private String ifMtu;

    @ApiModelProperty("接口物理地址")
    @TableField("ifPhysAddress")
    @Excel(name = "接口物理地址")
    private String ifPhysAddress;

    @ApiModelProperty("接口 VLAN 信息")
    @TableField("ifVlan")
    @Excel(name = "接口 VLAN 信息")
    private String ifVlan;

    @ApiModelProperty("接口链路聚合信息")
    @TableField("ifTrunk")
    @Excel(name = "接口链路聚合信息")
    private String ifTrunk;

    @ApiModelProperty("接口虚拟路由转发信息")
    @TableField("ifVrf")
    @Excel(name = "接口虚拟路由转发信息")
    private String ifVrf;

    @ApiModelProperty("PAgP 操作模式")
    @TableField("pagpOperationMode")
    private String pagpOperationMode;


    @ApiModelProperty("PAgP 端口状态")
    @TableField("pagpPortState")
    private String pagpPortState;


    @ApiModelProperty("PAgP 对端设备 ID")
    @TableField("pagpPartnerDeviceId")
    private String pagpPartnerDeviceId;


    @ApiModelProperty("PAgP 对端学习方法")
    @TableField("pagpPartnerLearnMethod")
    private String pagpPartnerLearnMethod;

    @ApiModelProperty("PAgP 对端接口索引")
    @TableField("pagpPartnerIfIndex")
    private String pagpPartnerIfIndex;

    @ApiModelProperty("PAgP 对端组接口索引")
    @TableField("pagpPartnerGroupIfIndex")
    private String pagpPartnerGroupIfIndex;

    @ApiModelProperty("PAgP 对端设备名称")
    @TableField("pagpPartnerDeviceName")
    private String pagpPartnerDeviceName;

    @ApiModelProperty("PAgP 以太网通道操作模式")
    @TableField("pagpEthcOperationMode")
    private String pagpEthcOperationMode;

    @TableField("pagpGroupIfIndex")
    @ApiModelProperty("PAgP 组接口索引")
    private String pagpGroupIfIndex;

    @ApiModelProperty("PAgP 设备 ID")
    @TableField("pagpDeviceId")
    private String pagpDeviceId;

    @TableField("ifInUcastPkts")
    @ApiModelProperty("入站单播数据包数量")
    @Excel(name = "入站单播数据包数量")
    private String ifInUcastPkts;

    @TableField("ifInUcastPkts_delta")
    @ApiModelProperty("入站单播数据包数量差值")
    @Excel(name = "入站单播数据包数量差值")
    private String ifInUcastPktsDelta;

    @TableField("ifInUcastPkts_rate")
    @ApiModelProperty("入站单播数据包速率")
    @Excel(name = "入站单播数据包速率")
    private String ifInUcastPktsRate;

    @TableField("ifOutUcastPkts")
    @ApiModelProperty("出站单播数据包数量")
    @Excel(name = "出站单播数据包数量")
    private String ifOutUcastPkts;

    @TableField("ifOutUcastPkts_delta")
    @ApiModelProperty("出站单播数据包数量差值")
    @Excel(name = "出站单播数据包数量差值")
    private String ifOutUcastPktsDelta;

    @TableField("ifOutUcastPkts_rate")
    @ApiModelProperty("出站单播数据包速率")
    @Excel(name = "出站单播数据包速率")
    private String ifOutUcastPktsRate;

    @TableField("ifInErrors")
    @ApiModelProperty("入站错误数据包数量")
    @Excel(name = "入站错误数据包数量")
    private String ifInErrors;

    @TableField("ifInErrors_delta")
    @ApiModelProperty("入站错误数据包数量差值")
    @Excel(name = "入站错误数据包数量差值")
    private String ifInErrorsDelta;

    @TableField("ifInErrors_rate")
    @ApiModelProperty("入站错误数据包速率")
    @Excel(name = "入站错误数据包速率")
    private String ifInErrorsRate;

    @TableField("ifOutErrors")
    @ApiModelProperty("出站错误数据包数量")
    @Excel(name = "出站错误数据包数量")
    private String ifOutErrors;

    @TableField("ifOutErrors_delta")
    @ApiModelProperty("出站错误数据包数量差值")
    @Excel(name = "出站错误数据包数量差值")
    private String ifOutErrorsDelta;

    @TableField("ifOutErrors_rate")
    @ApiModelProperty("出站错误数据包速率")
    @Excel(name = "出站错误数据包速率")
    private String ifOutErrorsRate;

    @TableField("ifInOctets")
    @ApiModelProperty("入站字节数")
    @Excel(name = "入站字节数")
    private String ifInOctets;

    @TableField("ifInOctets_delta")
    @ApiModelProperty("入站字节数差值")
    @Excel(name = "入站字节数差值")
    private String ifInOctetsDelta;

    @TableField("ifInOctets_rate")
    @ApiModelProperty("入站字节速率")
    @Excel(name = "入站字节速率")
    private String ifInOctetsRate;

    @TableField("ifOutOctets")
    @ApiModelProperty("出站字节数")
    @Excel(name = "出站字节数")
    private String ifOutOctets;


    @TableField("ifOutOctets_delta")
    @ApiModelProperty("出站字节数差值")
    @Excel(name = "出站字节数差值")
    private String ifOutOctetsDelta;

    @TableField("ifOutOctets_rate")
    @ApiModelProperty("出站字节速率")
    @Excel(name = "出站字节速率")
    private String ifOutOctetsRate;

    @JsonProperty("poll_time")
    @ApiModelProperty("轮询时间")
    @Excel(name = "轮询时间")
    private String pollTime;

    @JsonProperty("poll_period")
    @ApiModelProperty("轮询周期")
    @Excel(name = "轮询周期")
    private String pollPeriod;

    @TableField("ifInLoss")
    @ApiModelProperty("入站丢包数量")
    @Excel(name = "入站丢包数量")
    private Long ifInLoss;

    @TableField("ifOutLoss")
    @ApiModelProperty("出站丢包数量")
    @Excel(name = "出站丢包数量")
    private Long ifOutLoss;

    @TableField("ifInNoUnicastForward")
    @ApiModelProperty("接口非单播包转发数（in）")
    @Excel(name = "接口非单播包转发数（in）")
    private Long ifInNoUnicastForward;

    @TableField("ifOutNoUnicastForward")
    @ApiModelProperty("接口非单播包转发数（out）")
    @Excel(name = "接口非单播包转发数（out）")
    private Long ifOutNoUnicastForward;

    @TableField("ifUnknownDrop")
    @ApiModelProperty("丢弃的未知协议包")
    @Excel(name = "丢弃的未知协议包")
    private Long ifUnknownDrop;

    @Excel(name = "创建时间")
    private LocalDateTime createTime;
}
